﻿namespace BlamanticUI.Components;

/// <summary>
/// Render a divider of div.
/// </summary>
[CssClass("divider")]
public class Divider : BlazorChildContentComponentBase, IHasUIComponent, IHasVertical, IHasHorizontal, IHasInverted, IHasFitted, IHasHidden, IHasHorizontalAlignment
{
    /// <summary>
    /// Initializes a new instance of the <see cref="Divider"/> class.
    /// </summary>
    public Divider()
    {
    }
    /// <summary>
    /// Gets or sets a value indicating whether this layout is vertical.
    /// </summary>
    /// <value>
    ///   <c>true</c> if vertical; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Vertical { get; set; }
    /// <summary>
    /// Gets or sets a value indicating whether this is horizontal layout.
    /// </summary>
    /// <value>
    ///   <c>true</c> if horizontal; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Horizontal { get; set; }
    /// <summary>
    /// Gets or sets a value indicating whether adapted inverted background by parent component.
    /// </summary>
    /// <value>
    ///   <c>true</c> if adapted; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Inverted { get; set; }
    /// <summary>
    /// Gets or sets a value indicating whether the text remove paddings.
    /// </summary>
    /// <value>
    ///   <c>true</c> if fitted; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Fitted { get; set; }
    /// <summary>
    /// Gets or sets a value indicating whether is hidden.
    /// </summary>
    /// <value>
    ///   <c>true</c> if hidden; otherwise, <c>false</c>.
    /// </value>
    [Parameter] public bool Hidden { get; set; }

    /// <summary>
    /// Gets or sets the divider between paragraph and increasing space.
    /// </summary>
    [Parameter] [CssClass("section")] public bool Section { get; set; }

    /// <summary>
    /// Gets or sets clear the float.
    /// </summary>
    [Parameter] [CssClass("clearing")] public bool Clearing { get; set; }
    /// <summary>
    /// Gets or sets the horizontal alignment of text.
    /// </summary>
    [Parameter] public HorizontalAlignment? HorizontalAlignment { get; set; }
}
